TechInsights最近進行的一項嵌入式市場研究顯示,只有37%的受訪者認為示波器是《最受青睞/最重要的硬體/軟體工具》。排名第一的是編譯器和組譯器,55%的受訪者選了它們。
最青睞’和‘最重要’的工具也許不盡相同,但編譯器必然是其中最重要的工具之一。若少了它,我們在開發韌體時就完全束手無策。不過,現今的編譯器並不令人滿意。理想的編譯器應該能默默進行所有的無聊工作,工程師完全無須顧慮到它。
為何示波器的表現不佳?據Electronics.ca預測:2010年,全球示波器市場約達12.5億美元。與其它許多電子產品如微處理器相較,其規模要小得多,但對嵌入式系統工具市場而言卻很龐大。
此外,許多研究均預測嵌入式工具市場規模約為30億美元,但我對此持保留態度。分析師常常莫名其妙地把即時作業系統(RTOS)的銷售也算進工具銷售內,這幾乎沒什麼意義。而且,將包含各種RTOS及相關工具的業界主要廠商銷售額加總,所得結果仍遠不及10億美元。所以,示波器12.5億美元的銷售比整個嵌入式工具市場的規模大得多。人們會認為有很大比例的示波器是銷售給嵌入式硬體和軟體設計師。
過去15年來,嵌入式產業經歷了一波工具轉換。在上世紀80和90年代,多數使用電路內模擬器(ICE)。這些工具讓我們能針對一些領域進行除錯——單步驟、檢查變數,以及時域。ICE透過即時追蹤、性能分析、計時器和其它特性來支援時域除錯,上述特性對微秒級管理來說不可或缺。
然而,隨著處理器速度不斷提升,將訊號導引到ICE模擬頭已不切實際。表面黏著技術已將封裝尺寸縮小到再無法實行探測的水準。而諸如快取記憶體、管線以及MMU等複雜的晶片上功能,也使得CPU的工作和接腳上的訊號不再有任何關聯。儘管Lauterbach和Signum等少數企業仍繼續提供這種工具,但ICE市場幾乎已經消失了。
在許多研發機構,BDM和JTAG除錯器取代了ICE。BDM和JTAG價格低廉、易於安裝,它們利用CPU上的邏輯資源將除錯資料發送到PC。其工作不受目標系統時脈速率的影響,它使用的是一個簡單的專用連接器,緩解了所有表面黏著問題。
但BDM和JTAG除錯器並不具備任何處理時域問題的方法。它們提供像是Visual Studio的介面。因此,示波器就顯得更加重要。只要選取程式碼中的一個位元,示波器將立即顯示執行時間、延遲時間以及你需要瞭解的許多其它資訊。
好消息是,BDM/JTAG工具已獲得改善。更多廠商增加了用於解決除錯問題的硬體資源,並添加了諸如硬體中斷點、追蹤等各種晶片上邏輯資源,因而重現了即時除錯功能。
諷刺的是,參與CPU設計人們告訴我:他們受到管理層的‘逼迫’,要他們盡可能拿掉這類性能。老闆希望減少電晶體數量,或把這些電晶體用於實現更多功能或用於添加其他週邊。正如Jules Verne《從地球到月球》一書中所表現的,存在於裝甲製造商和槍炮製造者間本質上的緊張關係:在嵌入式世界,提供除錯資源和降低晶片成本間也存在著無休止的衝突。
簡陋的除錯器將不可避免地導致更高的工程費用。高工程成本推動銷售價格的上漲,因為這些非重複性工程支出必須由出售的產品分攤。然而,長期性的思考模式,也許快要成為一種過氣的稀有概念了。
我懷疑,晶片製造商和開發商間的衝突就是市場結構本身的一部份,且永不會消失。這是個遺憾,但它也為其他更智慧的工具提供了機會。例如,可將Micrium的μC/Probe與示波器結合。μC/Probe是我所見過最有趣的工具之一。它將嵌入式系統內的一段通訊碼與基於PC、可感知ELF或類似除錯檔的應用連結起來。可拖曳螢幕上的一些條目(如虛擬儀表和運算表)並將其與程式碼中的變數連結。μC/Probe會週期性採樣這些變數並在螢幕上更新。也就是說,在系統閒置時,能看到虛擬類比儀表顯示難道不是件很酷的事嗎?
更深入地探究關於除錯工具的這些研究資料結果,可看到有53%的設計師認為除錯器是最重要的工具。假設‘除錯器’是我們用來驅動硬體工具的軟體應用,我同意,這是一個非常重要的工具。許多計畫把50%的研發努力花在除錯和測試上,所以面對這些應用,我們需要經年累月持續的艱辛付出。重要?你說對了。最喜歡的?我當然希望如此,並希望它是被精心設計因而能不折不扣地支援我們的工作且不會阻礙我們的努力。